package com.lyf.scm.plan.domain.convertor;

import com.lyf.scm.plan.insfrastructure.db.dataobject.bigdata.*;
import org.mapstruct.Mapper;

/**
 * 大数据基础类实体转换器
 *
 * @author wangchlei
 * @date 2020/10/05
 */
@Mapper(componentModel = "spring")
public interface BigDataBaseConvertor {
    /**
     * 直营预测——执行  实体获取
     *
     * @param baseInDO
     * @return {@link DirectlyExecuteInDO}
     **/
    DirectlyExecuteInDO baseDOToExecuteDO(BaseInDO baseInDO);

    /**
     * 直营预测——门店  实体获取
     *
     * @param baseInDO
     * @return {@link DirectlyStoreInDO}
     **/
    DirectlyStoreInDO baseDOToStoreDO(BaseInDO baseInDO);

    /**
     * 直营预测——差异  实体获取
     *
     * @param baseInDO
     * @return {@link DirectlyDifferinInDO}
     **/
    DirectlyDifferinInDO baseDOToDifferDO(BaseInDO baseInDO);

    /**
     * 直营预测——准确率  实体获取
     *
     * @param baseInDO
     * @return {@link DirectlyAccuracyInDO}
     **/
    DirectlyAccuracyInDO baseDOToAccuracyDO(BaseInDO baseInDO);

    /**
     * 直营预测  实体获取
     *
     * @param baseInDO
     * @return {@link DirectlyInDO}
     **/
    DirectlyInDO baseDOToDirectDO(BaseInDO baseInDO);

    SalesPlanExecuteEntity baseEnToExecuteEn(BaseEntity baseEntity);

    SalesPlanDirectlyEntity baseEnToDirectlyEn(BaseEntity baseEntity);

    SalesPlanDifferinEntity baseEnToDifferinEn(BaseEntity baseEntity);

    SalesPlanAccuracyEntity baseEnToAccuracyEn(BaseEntity baseEntity);

    RequirementsPlanningEntity baseEnToRequirementEn(RequirementsPlanningEntity requirementsPlanningEntity);
}
